home *** CD-ROM | disk | FTP | other *** search
/ Guide To Cracking 2002 / Guide_to_Cracking_2002.iso / Utilities / Zip Crackerz / Yet Another Arj Cracker.exe / Yet Another ARJ Cracker / YAAC.ENG < prev    next >
Encoding:
Text File  |  1998-11-21  |  29.2 KB  |  748 lines

  1.  
  2. THIS IS MACHINE TRANSLATION!
  3. --------------------------------------- -------------------------
  4. Changes in versions:
  5.  
  6. 0.97b:
  7.   - "5th line" bug in PCL 2.0 fixed. Only password definitions
  8. greather than 4 lines have been affected. Thanks to Dmitry Lisiy.
  9. Some minor bugs in -f option fixed (thanks to Mikhail Leitus).
  10.  
  11. 0.97a
  12.   - 0.95a version "know-how" was applied and speed was increased a bit.
  13.  
  14. 0.97:
  15.   - PCL v. 2.0 added. Thus, appeared: support of different languages
  16. and encodings, charset definition, new modifiers and their parameters,
  17. timing and benchmarking functions, maximal password length is
  18. now 255. Due to the invaluable Vyacheslav Semyonov's help many heuristics
  19. are improved, therefore up to a half of the
  20. passwords is discarded beforehand. The options -g and -l now mean
  21. length of the password, not '*'.
  22.  
  23. 0.96:
  24. - Some bugs fixed affected ARJ > 2.60 archives only.
  25.  
  26. 0.95b:
  27. - New ARJ > 2.50 encryption scheme (-hg option) check (not support) added.
  28.  
  29. 0.95a:
  30. - 25-40% speedup on Pentiums.
  31.  
  32. 0.95:
  33. - Library Password Cracking Library (PCL) v. 1.1 added, allowing
  34. multifunctional dictionary attacky, brute force attack with
  35. known symbols, recovery of the incorrectly typed password and much.
  36. - Small bug fixed, connected that on very rare files of block ratio number
  37. can nevertheless be more than 1.1
  38. - In connection with transition to the gcc compiler the 386+ processor and
  39. DPMI-host is now required.
  40.  
  41. 0.91b:
  42. - Bug fixed, because of which seldom the 3-rd symbol incorrectly
  43. turned out;
  44. - Conclusion of length of files in an option -c is added;
  45.  
  46. 0.91:
  47. - First version released.
  48.  
  49. --------------------------------------- -------------------------
  50.  
  51.  
  52.  
  53.           Y A A C (Yet Another ARJ Cracker) v. 0.97
  54.  
  55.         (ß) Copyright PSW-soft 1994-98 by P. Semjanov
  56.  
  57.  
  58.     THIS BETA-VERSION of  the PROGRAM IS  DISTRIBUTED " AS  IS ".
  59. You CAN USE  IT AT YOUR  OWN RISK. ANY  CLAIMS ON WORKING  of the
  60. PROGRAM WILL NOT BE ACCEPTED. ALSO the AUTHOR DOES NOT  GUARANTEE
  61. FURTHER SUPPORT and UPDATING of future VERSIONS of THIS  PROGRAM.
  62. This program is FREEWARE and can be distributed freely under fol-
  63. lowing conditions: the  program code may  not be changed  and the
  64. program is distributed in original form.
  65.  
  66.  
  67. 1. Purpose and characteristics.
  68.  
  69. The YAAC program is intended for definition of the "forgotten"
  70. password at ARJ-archives. The program correctly works with archives ARJ of
  71. versions 2.30-2.60. Since version 2.55 the ARJ's author introduced the
  72. new procedure of encoding it is not supported by the given program
  73. (see item 6).
  74. Also this program is intended for demonstrating possibilities of the Password
  75. Cracking Library (PCL) library.
  76. For operation the YAAC program needs the computer with at least
  77. 80386 processor and 256K of the main memory, and also any DPMI-host.
  78. Thus it is recommended to use the program on as more
  79. powerful processor as possible (code is optimized for Pentium).
  80. The YAAC program is rather fast (the speed achieves
  81. 350000 pass/s on Pentium/166 at brute-force search and about 270000 pass/s
  82. at attack under the dictionary). So, finding the
  83. 8-character password from capital latin characters will take several minutes.
  84.  
  85. 2. Requirement to entry archive.
  86.  
  87.  
  88.     For successful work of the program for given of ARJ-archive the following
  89. requirements should be carried out:
  90.   - All files were ciphered with the identical password;
  91.   - options -jh, -m0, -m4, -hg were not used.
  92.     The program will work especially effectively, if in archive:
  93.   - it is a lot of files. In no event it is not
  94. necessary up to work of the program to throw out from archive some (long)
  95. files;
  96.   - is of a little bit small files (100-500 byte).
  97. If you have besides ciphered archive at least one file from it in plain,
  98. decompressed text, very effective attack in the plain text can be
  99. applied. There is the program SOLVEPWD.COM by Anantolyn Skoblov (enters a package
  100. BRKARJ).
  101.  
  102.  
  103. 3. Operation with the program.
  104.  
  105. The program has two modes of operations: automatic and for advanced users.
  106. For operation with the program at first it is necessary to
  107. create password definition file (see item 4). Also DPMI-host
  108. is necessary for start of the program  (from QEMM, Windows
  109. etc.), or FREEWARE CWSDPMI.
  110.  
  111. 3.1. Automatic mode.
  112.  
  113. For start of the program in this mode use the command:
  114.  
  115. YAAC of [option] archive [.ARJ]
  116.  
  117. If the password consists no more, than from 3 characters, it at once is
  118. produced on the screen.
  119. Differently program will produce probable combinations of first two
  120. characters of the password (" The password may begin with: ") and third
  121. character (" The 3rd char is: "). These assumptions it makes, being
  122. based on all possible characters which are included in set '?' (see
  123. 4.2.1).
  124. Further it produces a recommended character set (" Recommended set of
  125. chars: "). On the basis of this information you can foresee, of what characters
  126. the password consists.
  127. Here it is possible to give the following advices:
  128. - The majority of the passwords are limited to small latin characters ($a );
  129. - The program is most exact determines the first and third character
  130. of the password, therefore just on the basis of them you should accept
  131. solution, what character set to use;
  132. - Use full sets of characters will increase time of search of the password in
  133. comparison with set $a on some orders.
  134. Found password is produced on screen as:
  135.  
  136. Truepass CRC OK
  137. Passwords tested = XXXXXXX (slow tests = XXXXX)
  138.  
  139. All other messages of the program, both with a mark "CRC ERROR", and without
  140. it, are not right passwords.
  141.  
  142. Options in this mode are:
  143.    -lXX - establishes  minimum password length, where XX ranges from
  144. 1 to 255, (by  default = 1). This options affects only if '*' presents
  145. in password definition (See  item 4.1.1).
  146.  
  147.    -gXX - establishes  maximum password length, where XX ranges from
  148. 1 to 255, (by default = 5).
  149.  
  150.    -n - is usual the program truncates set of first two characters
  151. $ S (1) up to what get in recommended. This option cancels it.
  152.  
  153.    -pXXX - sets a name of the password definition file (by  default
  154. "PASSWORD.DEF").
  155.  
  156.    -b  - make some benchmarks.
  157.  
  158.    -v  - verbose debug mode (see 5.1), could be used for printing
  159. defined charsets.
  160.  
  161.  
  162. 3.2. Mode for advanced users.
  163.  
  164. The necessity for introduction of such mode is connected that the author did
  165. not manage to construct the function authentically defining first two
  166. characters of the password. However it can be made manually on
  167. To the following scheme:
  168.  
  169. 1) From your archive (let it is named YOUR.ARJ) select some small files;
  170. 2) Start the program
  171.  
  172. YAAC -c YOUR.ARJ
  173.  
  174. to find out original length and the ratio for these files, and also version of ARJ used;
  175.  
  176. For each of them do the following (for example, for the SAMPLE.EXE file of
  177. length 10000, ratio = 0.6):
  178.  
  179. 3) Find on the hard disk files with the same extension
  180. (*.EXE) and approximately such length + - 50 % (7500-15000);
  181. 4) Arhive these files by the archiver ARJ of the same version in other
  182. archive OTHER.ARJ;
  183. 5) Start the program
  184.  
  185. YAAC -c OTHER.ARJ
  186.  
  187. Also select among them those, the ratio which differs from source
  188. no more than on 2-3 % (0.57-0.63);
  189. 6) For these files find maximum and minimum value from a column Block ratio
  190. (let it will be 0.66 and 0.75);
  191. 7) Add in the YAAC.SIZ file a line
  192.  
  193. SAMPLE.EXE 0.66 0.75
  194.  
  195. After a closing up with all files
  196.  
  197. 8) Start the program
  198.  
  199. YAAC -f YOUR.ARJ
  200.  
  201. Some remarks:
  202. - If you can not find files with such extension, try to look for files with
  203. similar length (+ - 10 %), and then select what give same ratio;
  204. - If you have found only 1-2 suitable files, take away from minimum value Block
  205. ratio and add to maximum on 0.05;
  206. - Numbers Block ratio can be more than 1.0, but can not be more than 1.2, and
  207. very much hardly less than 0.3. Usual values are 0.75.. 0.95;
  208. - It is possible also to try compress the found files, using options ARJ
  209. -jm, -m2, -m3.
  210.  
  211. In this mode together with an option -f it is possible to use
  212. Any options of an automatic mode.
  213.  
  214. 4. Choice of operation mode and  password set with the help of  a
  215. password description file.
  216.  
  217. The password definition file is a main managing file. Its compilation
  218. and processing is purely the basic problem of library PCL. Its format
  219. is independent of the application, to which PCL is connected, therefore
  220. this library can be used with any program, engaged in detection of passwords.
  221.  
  222. 4.1. Format of the password definition file.
  223.  
  224.  
  225. Password definition file is a plain text file divided on two parts:
  226. dictionaries and character sets descriptions and password description.
  227. These parts are divided by line '##':
  228.  
  229. [ <the description of the dictionaries and character sets> ]
  230. ##
  231. <the description of the passwords>
  232.  
  233. The first part can be absent, then the file should begin with symbols '##'.
  234. Thus in any other place the symbol '#' is considered as the beginning of
  235. the comment. The blanks and tabulation in a file of the descriptions are
  236. ignored and can divide any components.
  237. For a convenience, at the beginning, as against a sequence of the descriptions in
  238. a file, we shall consider the mechanism of the description of the passwords,
  239. and then description of character sets.
  240.  
  241. 4.2. Description of the passwords.
  242.  
  243. It is a main part of a file, NECESSARY PRESENT IN ANY PASSWORD DEFINITION FILE
  244. AFTER '##' LINE. It consists of textual lines, each  of
  245. which sets the set of the passwords and working mode, i.e. which
  246. algorithm will be used. Each line is independent and is processed
  247. separately, thus the total number of the checked passwords is counted up.
  248. The basic components of the  password definition file  are: character sets
  249. and words from  the dictionaries.  They set  one or  several symbols,
  250. which will be in the  password on appropriate places.
  251.  
  252. 4.2.1. Character sets.
  253.  
  254. The character set (charset) is set of symbols, which can be on  a
  255. actual place in the password  (but there is, naturally, only  one
  256. of them). To can be the following:
  257.  
  258.  1) Simple single symbols (a, b, and etc.). Meaning, that in  the
  259. given  position  of  the  password  there  is just this symbol.
  260.  
  261.  2) Shielded symbols. The special symbols, if they are met in the
  262. password, they should be shielded. The sense coincides with  previous.
  263. They are:
  264.  
  265.   \$, \., \*, \?, \=     - "$", ".", "*", "?", "="
  266.   \], \[, \ , \}, \(, \) - appropriate brackets
  267.   \ (space)              - space
  268.   \\                     - "\"
  269.   \XX, where X is hex-digit - any symbol in hex-code
  270.   \0 - empty symbol (absence of a symbol). Is usually applied  in
  271. association with the "present" symbol (see examples below).
  272.  
  273. Basically, any symbols can be  shielded, if they are not hex-digits.
  274.  
  275.   3) Symbol set macros.  These sets are
  276. defined(determined) in the first part of a file of the descriptions (see item
  277. 4.3.2). Meaning, that in a current  position
  278. of the  password there  is any  symbols, determined  by following
  279. macros:
  280.  
  281.   $a - lower Latin letters (if not redefined, in total 26 possibilities);
  282.   $A - upper Latin letters (if not redefined, in total 26 possibilities);
  283.   $! - special marks (if not redefined,  32 possibilities);
  284.   $1 - Figures (if not redefined,  10 possibilities);
  285.   $i - lower national letters;
  286.   $I - upper national letters;
  287.   $o - User's set;
  288.   ?  - Any symbol, i.e. all chars included in these macroses.
  289.  
  290. Note: $v and $p (see 4.3.4) could not be used to generate passwords.
  291.  
  292. 4) The combination of any of the listed symbols above. Is written
  293. down with the help of  square brackets. The sense coincides  with
  294. previous.
  295.  
  296. Examples:
  297.  
  298. [$a $A] - any Latin letter;
  299. [abc] - or a, or b, or c;
  300. [$1 abcdef] - hex-digit;
  301. [s \0] - or s, or nothing;
  302. [$a $A $1 $! $i $I $o] - is equivalent to ?.
  303.  
  304. 5) Regular symbol of recurrence "*". Means that the previous cha-
  305. racter set needs to be repeated 0 or more time in the appropriate
  306. positions of the password. Examples:
  307.  
  308. $a * - password of any length from the small Latin letters;
  309. [ab] * - is empty, a, b, aa, ab, ba, bb, aaa...
  310. [$a $A] [$a $A $1] * - "identifier" - sequence of the letters and
  311. figures, and first letter.
  312.  
  313.  Let's note, that the zero length password has the certain
  314. physical sense, and is not always equivalent to absence of the password.
  315. Length of recurrence is calculated automatically on the basis of given maximal
  316. and minimal length of the password by a call of the basic function of library
  317. parse_rules_file(). Let's note, that these parameters influence only
  318. length of the password generated with the help of a symbol '*' and are not
  319. using, if the password consists only of words or static symbols.
  320. It is recommended to use "*" as often as possible due to the fact  that
  321. it will create the most effective brute force attack.
  322. Current restriction - "*" can only be the last element of a line.
  323.  
  324. 4.2.2. Word from the dictionaries and their modifiers.
  325.  
  326. Contrary to a character set, the word set uses not one, but a few
  327. symbols of the password  in succession. The PCL  library supports
  328. two dictionaries  basic (where more often used words are found )
  329. and user (where the specific information such as names or dates).
  330. The dictionary is a text file, consisting of  words, divided by end of a  li-
  331. ne(EOL) symbols. Files such as DOS- (CR/LF), and UNIX-format (LF)
  332. can be used. It is  desirable (including brute force speed) to have
  333. all words in one (lower) case.
  334.  
  335.   Thus, two macros exist:
  336.  
  337. $w - Word from the basic dictionary
  338. $u - Word from the user dictionary.
  339.  
  340. Also as the words  can be described special sets, since they  can have
  341. any length. They are designated $s(1), $s(2),... And are determi-
  342. ned to be specific to a problem. For this program are two
  343. special sets: $s(1) and $s(2), meaning two first and third character
  344. of the password accordingly. It is necessary to mean what to use special
  345. character sets it is meaningful only in a defined place, namely, $s(1) should
  346. go by first (and has length of 2 characters), and
  347. $s(2) should get on a third position in the password (length is equal 1).
  348. Thus, only following examples make sense:
  349.  
  350. $ s(1) $s(2)
  351. $ s(1) ?
  352. ?? $s(2).
  353.  
  354. It is impossible to consider anyone others, though and generating
  355. passwords, correct.
  356.  
  357. As is frequently known the passwords are altered words. Therefore
  358. for determining such  passwords the whole  set of modified  words
  359. are entered. Use following switches:
  360.  
  361. .u (upper) - convert to uppercase;
  362. .l (lower) - convert to lowercaser;
  363. .t (truncate) - truncate at given length;
  364. .c (convert) - transform the word;
  365. .j (joke) - convert to uppercase some letters;
  366. .r (reverse) - reverse the word;
  367. .s (shrink) -  reduce a word;
  368. .d (duplicate) - repeat a word 2 times.
  369.  
  370. The modifiers can have parameters which are written down in parentheses. For
  371. modifiers intended for work with the separate letters, it is possible to set as
  372. parameter the number of the letter; absence of parameter or zero parameter means -
  373. " the whole word ". Further, numbers of the letters can be set both from a
  374. beginning of a word, and from the end. The end of a word is designated by a
  375. symbol '-'.
  376. For today there are only 3 of such modifiers: .u, .l, .t.
  377. So,
  378.  
  379. .u or .u(0) - uppercase the whole word (PASSWORD);
  380. .u(1), .u(2) - uppercase only first (second) letter (Password, pAssword);
  381. .u(-), .u(-1) - uppercase last (last but one) letter (passworD, passwoRd);
  382. .t(-1) - cut off last letter in a word (passwor).
  383.  
  384. Other modifiers work only with the whole words and parameter sets a conversion
  385. mode. For today the following parameters to modifiers are legal:
  386.  
  387. .j(0) or .j - uppercase the odd letters (PaSsWoRd);
  388. .j(1) - uppercase the even letters (pAsSwOrD):
  389. .j(2) - uppercase the vowels (pAsswOrd);
  390. .j(3) - uppercase the consonants (PaSSWoRD);
  391. .r(0) or .r - reverse a word (drowssap);
  392. .s(0) or .s - reduce a word by removing vowels, if it is not first char (password - > psswrd, offset - > offst);
  393. .d(0) or .d - duplicate a word (passwordpassword);
  394. .d(1) - add the reversed word (passworddrowssap);
  395. .c(<number>) - convert all letters in a word according to the
  396. conversion string (see item 4.3.3).
  397.  
  398. All modifiers will correctly work both with latin, and with the national
  399. letters, if national character  are set correctly.
  400. Certainly, that the modifier can be not unique (restriction of their
  401. number in succession - 63, which hardly is possible to exceed).
  402. Examples (let $w - password):
  403.  
  404. $w.u(1).u(-) - PassworD
  405. $w.s.t(4) - pssw
  406. $w.t(4).s - pss
  407.  
  408.  
  409. 4.2.3.  Permutation brackets.
  410.  
  411. Maybe you remember the  password, but it does not  match. Pro-
  412. bably, you  were mistaken when you typed it. For  restoration of  such
  413. passwords, the program has its own proper algorithm . It conside-
  414. res, the errors in typing can be following:
  415. two letters are swaped (psasword), one letter
  416. is removed (pasword), extra letter is inserted (passweord) or one is replaced
  417. with other (passwird). Let's name such changes of the password "permutations".
  418. To indicate  the  start  and  end  of  a  possible  permutation in the
  419. password permutation brackets "{" and  "}" are applied . "}" is
  420. followed  by  the  permutation  number  (by  default - 1), separated by "."
  421. or in in parentheses. Physical sense of permutation number is the
  422. amount of simultaneously allowed errors. Examples:
  423.  
  424.  
  425. {abc} - will receive 182 (different) passwords, such as:
  426.   bac, acb - 2 swaps;
  427.   bc, ac, bc - 3 removals;
  428.   aabc, babc... - 4 * 26 - 3 inserts;
  429.   bbc, cbc... - 3 * 25 replacements;
  430.   abc - and the word;
  431.  
  432. {Password}.2 or {Password}(2) - in particular, words as:
  433.  "psswrod", "passwdro" and "paasswor" will be received;
  434.  
  435. {$w} - all words with one error from the basic dictionary.
  436.  
  437. Notes:
  438. 1) It is normal, that some passwords will not be found at  on-
  439. ce, and, the higher the permutation number is, the more recur-
  440. rences there will be. Efforts on reduction of recurrences were
  441. made in the program, but they are purely empirical and are untrusted
  442. on permutation numbers greater than 2. Or else, for large numbers
  443. there is no guarantee that any password
  444. will not be wrongly throw out.
  445. 2) For insert and replacement  it is necessary to know,  which
  446. set of symbols to insert. If this set is not defined (see item 4.3.4),
  447. this program defines it automatically, inserting the set of
  448. the standard set these symbols belong (i.e. {password} should be in-
  449. serted - $a, {Password} - [$a $A]). For words the similar ope-
  450. ration must  be carried  out on  the first  word from the dic-
  451. tionary, thus  modifiers are  taken into  account.
  452.  3)  Current restrictions: the symbol  "{" should  be first
  453. in  a   line.  The   expressions  as good_{password} are not
  454. suppoted, but {good}_password are supported.
  455.  
  456. 4.3. Description of the dictionaries and character sets.
  457.  
  458. All descriptions make in the beginning of a password definition file
  459. above to symbols '##'.
  460.  
  461. 4.3.1. Description of the dictionaries.
  462.  
  463. In the beginning are usually described the basic and user dictionary (see
  464. item 4.2.2). It is necessary  only if password description will be used words
  465. from the dictionaries, i.e. $w or $ u.
  466. The dictionaries are set as follows:
  467.  
  468. $w = "<dictionary_filename>"  # the basic dictionary
  469. $u = "c:\\dict\\user.dic"     # additional
  470. Is it necessary to quote the filenames, and to shield the path symbols.
  471.  
  472. 4.3.2. Definition of used character sets.
  473.  
  474. Used character sets further are usually defined. They are divided
  475. on predefined and set by the user. Predefined consist from:
  476.  
  477. $a - small latin letters, only 26 pieces;
  478. $A - large latin letters, only 26 pieces;
  479. $! - special symbols  {}:"<>?[];\',./~!@#$%^&*()_+`-=\|  - 32 pieces;
  480. $1 - figures, 10 pieces.
  481.  
  482. User-defined sets consist of:
  483.  
  484. $i - lowercase letters of the national alphabet;
  485. $I - uppercase letters of the national alphabet;
  486. $o - additional set (for example, any non-typed on keyboard symbols).
  487.  
  488. The definition of sets occurs to the help of the following format:
  489.  
  490. $<set> = [< single symbols or character sets >]
  491.  
  492. Or else, the character set enters the name with the help of combination of
  493. symbols (see item 4.2.1), for example:
  494.  
  495. $o = [$! $1 \FF]
  496.  
  497. NOTES:
  498. 1) Yoy may define any character sets, including predefined. For example,
  499. it is possible to add in set $! additional symbols, such as a blank or \FF.
  500. 2) The definition of sets $i and $I automatically determines
  501. rules of upper/lowercase conversion. Therefore it is
  502. important, that the letters in these sets is in the same order.
  503.  
  504. Only after all character sets are defined, the complete set of
  505. symbols '?' will be formed, consisting of [$a $A $1 $! $i $I $o],
  506. and just in such order (it is important for following item).
  507.  
  508. 4.3.3. Definition of convert modifiers.
  509.  
  510. Convert modifiers .c (see item 4.2.2) can be set further, with reference
  511. to complete set of symbols '?'. It could be done using the lines
  512. with format:
  513.  
  514. ?.c(<number>) = " < conversion line > "
  515.  
  516. Each symbol available in complete set will be transformed in appropriate to
  517. it, taking place in the same position in a conversion string. For
  518. example, let
  519.  
  520. ?      = [1234567890], then
  521. ?.c(0) = "!@#$%^&*()"
  522.  
  523. sets shift-conversion.
  524. In the conversion string it is necessary to shield symbols '\' and '"".
  525. Parameters at convert modifiers can be from 0 up to 255.
  526.  
  527. 4.3.4. Definition of special character sets
  528.  
  529. To special character sets concern:
  530. $v - the set of vowels (in all alphabets) - is required only, if
  531. the modifiers .s and .j are used.
  532. $p - the set for insert with permutation brackets - is
  533. required only, if for some reason does not arrange automatic reception of this
  534. set (see item 4.2.3).
  535. They are set similarly to other character sets.
  536.  
  537.  
  538. 4.4. Useful examples of password descriptions.
  539.  
  540. 1) Let me  give you a  fragment from the  documentation on the
  541. program ZEXPL2L:  " I  assume, that  you have  archive with  a
  542. password, similar to " Heaven!!!", but you have forgotten, how
  543. many '!' were at the end  of a word, and which -  lower/upper
  544. case vowels were.
  545.  This  password would  be written  down in  PCL language as
  546. such:
  547.  "He [aA] v [eE] n! * "
  548. We shall assume  in addition, that  you were mistaken  about a
  549. set of the basic part of the password. Then it is necessary to
  550. try following:  "{He [aA]  v [eE]  n} !  * "
  551.  
  552. 2) Another citation : " Assuming, you have two variants of a line
  553. of the password:  "myprog", "MyProg","my_prog" and  "My_Prog".
  554. It should be written down as:
  555. "[mM] y [_ \0] [pP] rog".
  556.  
  557. 3) Often passwords consist of two intelligent words, separated
  558. by some sign. The appropriate description:
  559.  "$w [$1 $!] $w" or
  560.  "$w.u(1) [$1 $!] $w.u(1)"
  561. It is important to note, that both $w are not equal here , and
  562. will generate a total of (if there are 20000 words in the dic-
  563. tionary): 20000 * 42 * 20000 = 1.68E10 passwords.
  564. Accordingly,  it  is  simple  two  words separated by a number
  565. break in 42 times faster.
  566.  
  567. 4)  You  remember,  that  your  password  was "MyVeryLongGoodPassword",
  568. but it  does not match  for some reason.  Try these
  569. combinations:
  570.   "{MyVeryLongGoodPassword}"   - 2382 passwords, 1 sec
  571.   "{MyVeryLongGoodPassword}.2" - 2836413 pass., 1 min
  572.  
  573.  
  574. 5) You know, that the password consists of an intelligent word,
  575. inside which on any position figure is inserted. The description:
  576.  
  577. $p = [$1]  # define insert set
  578. ##
  579. {$w}
  580.  
  581. 6) Attack on syllables. Create the dictionary of allowable syllables of your
  582. language, and then it is possible to touch all intelligent-sounding word
  583. as follows:
  584.  
  585. $u      # all one-syllable word
  586. $u$u    # two-syllables
  587. $u$u$u  #etc.
  588. $u$u$u$u
  589. ...
  590.  
  591. 7) To parrallel the work on 2 computers, set to them
  592. the following descriptions:
  593. "[abcdefghijklm] $a * " - first
  594. "[nopqrstuvwxyz] $a * " - second.
  595. Similarly act for n of computers.
  596.  
  597.  
  598.              5. Originating problems (FAQ).
  599.  
  600. 1. Message " No matching passwords " is printed.
  601.  
  602. The following reasons and ways of their elimination are possible(probable):
  603.  
  604. 1) In the password non-standard symbols are used. Include all possible
  605. symbols to $o charset.
  606. 2) In case in archive there are enough files, it can occur from(because of)
  607. imperfection of an automatic mode. Start the program YAAC c by an option -v
  608. and analyse the target information. It(she) consists for each file in archive
  609. of his(its) name, after which there are four numbers and then set of allowable
  610. first two symbols of the password, processing suitable the ambassador of this
  611. file. Therefore, if the information looks like as:
  612.  
  613. FILE1.EXT 1881 940 2050 1504
  614. po = 422
  615. pp = 421
  616. pr = 427
  617. ps = 426
  618. pt = 425
  619. pu = 424
  620. pv = 431
  621. pw = 430
  622. px = 429
  623. py = 428
  624. pz = 435
  625. FILE2.EXT 959 479 1045 764
  626. FILE3.EXT 1317 658 1435 1052
  627.  
  628.  
  629. That, how it is visible, on a file FILE2.EXT the set of the first two symbols
  630. has become empty and this file IS NECESSARY FOR REMOVING from archive. Can
  631. similarly be, that stabilized set of the first two symbols
  632. suddenly sharply decreases, such file too is better for removing.
  633. If it will not help, remove from archive all large files. If and it will not
  634. help, remove from archive the whole first half.
  635. 3) Refuse automatic mode of operations.
  636.  
  637. 2. How to interrupt and to continue the brute-force searching?
  638.  
  639. The program can  be painlessly interrupted after a conclusion
  640. of the message " Testing XX-chars passwords... " and continued
  641. with the help of an  option -lXX (here both XX are equal).
  642.  
  643. 3. The program counts 10-th day, but nothing was found.
  644.  
  645. Alas! There is no help here. Either the password is too long,  or
  646. it  is  incorrectly  described.  Additional  information  on  the
  647. password is necessary. See 5.1.
  648.  
  649. 4. I've tested your program. It's one big bug! It couldn't find such
  650. passwords as "aaa2".
  651.  
  652. RTFM. Standard password.def file does brute-force searching using only
  653. lowercase latin letters. Just change password definition to
  654. "s(1) s(2) [$a $1] *" and everything will be ok.
  655.  
  656.  
  657. 5. I had password "abc", and the program does not find it.
  658.  
  659. If the password consists less, than from four characters, it can be
  660. produced as "double-length" password.
  661. It is not an error, it's small defect only.
  662.  
  663. 5a. I had password "A$rrr", and the program does not find it, although
  664. first three characters are printed correctly.
  665.  
  666. Try -n option. Without it the program truncates first three characters
  667. set to the recommended set and '$' symbol may be not included in it.
  668.  
  669. 6. I have one file in plain text. It can help?
  670.  
  671. Yes. Use the SOLVEPWD.COM program.
  672.  
  673.  
  674.               6. Outputs and perspectives.
  675.  
  676. 1) Probably, nevertheless it is possible to write more - less áñѬóáΓ
  677. ìπε the function defining Block ratio and by that to refuse from inconvenient
  678. unautomatic mode of operations.
  679. 2) Is similar, that is possible to expand used algorithm so, that the
  680. exhaustive search will be conducted only up to 7-9 character passwords, and
  681. then it will be possible to touch only passwords, which beginning from 7-9
  682. characters satisfies to some criterion. It will allow to increase effective
  683. length «ΓúáñδóáѼ«ú« of the password till 13-15 of characters.
  684. 3) Very easily it is possible to open the password, if in archive there are
  685. files with single ¬«¼»αÑßß¿Ñ⌐ (-m0).
  686. In version ARJ 2.55 encoding archives on âÄæÆπ (option -hg) has appeared. If
  687. this encoding and ever will be supported by the given program, the speed it
  688. will fall on 1-2 order.
  689. Wishing to me to help and to become the co-authors can communicate with me. The
  690. knowledge of the programming language distinct from BASIC, and source codes
  691. UNARJ 2.41 is necessary.
  692.  
  693. 7. Concerning library PCL.
  694.  
  695. The  author distributes  the library PCL as
  696. FREEWARE files .LIB (under Borland, Watcom C) or .a (under DJGPP)
  697. with the requirement of the certitude of reference of it in  your
  698. programs. Receipt of the sources is a separate subject.
  699.  
  700.  
  701. 8. How to contact to the author.
  702.  
  703. Only by e-mail.
  704. e-mail: psw@ssl.stu.neva.ru
  705. FIDO:   2:5030/145.17
  706. WWW;    http://www.ssl.stu.neva.ru/psw/
  707.  
  708.  
  709. THE NEW VERSIONS of the PROGRAM ARE ONLY ON the FOLLOWING WWW-address.
  710. I AM NOT ENGAGED in THEIR DISTRIBUTION In ANY SORT!
  711.  
  712. http://www.ssl.stu.neva.ru/psw/crack.html
  713.  
  714. Though, as I already have told, any claims to be accepted will not be, I shall
  715. be grateful to the instruction(indication) on obvious errors, such as:
  716. - The program hangs up at exhaustive search (that she(it) nothing outputs thus
  717. on the screen, is not tag of hangup);
  718. - The program does not find such password in such archive, though the set of
  719. characters of exhaustive search is given correctly and first three characters
  720. are output correctly:
  721. - The program incorrectly finds third character of the password;
  722. - The program does not find the password at the described above circuit(scheme)
  723. of operation in a unautomatic mode.
  724. As I shall be glad to any constructive sentences on π½πτΦÑ
  725. ì¿ε of operation of the program.
  726. I shall not refuse still, if someone, whom this program has rescued life to, as
  727. gratitude wants to transfer(translate) this file on good English.
  728. The discussion of algorithm of the program and source codes is possible only at
  729. your interest in development of this program.
  730. Do not ask, that I have made service such as continuation of exhaustive search
  731. from the current password either imaging of the current password or
  732. interruption at any moment on Ctrl-Break!
  733.  
  734. 9. Special thanks.
  735.  
  736. Anatoly Skoblov for the program BRKARJ, serving by a push to a writing of
  737. this program;
  738. Mikael Malakhov for the program ARJ_PSW, the initial texts of which were used;
  739. Vyacheslav Semyonov for it the invaluable help on
  740. improvement heuristics,
  741. All by rest, who helped, advised and tested YAAC.
  742.  
  743. Good luck!
  744.  
  745. Pavel Semjanov, St.-Petersburg.
  746.  
  747.  
  748.